package com.demarc.pesquisas.infraestrutura.persistencia;

import java.io.Serializable;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

/**
 * Classe para conversão segura de lista para lista tipada.
 */
@SuppressWarnings({ "rawtypes", "unchecked" })
public class ColecaoChecada implements Serializable {

	private static final long serialVersionUID = 1L;

	/**
	 * Retorna a lista passada com checagem de tipo.
	 * 
	 * @param <T>
	 *            tipo dos ítens da lista
	 * @param lista
	 *            lista a ser checada
	 * @param classe
	 *            classe dos itens da lista
	 * @return a lista checada
	 */
	public static <T> List<T> checkedList(List lista, Class<T> classe) {
		return Collections.checkedList(lista, classe);
	}

	/**
	 * Retorna a coleção passada com checagem de tipo.
	 * 
	 * @param <T>
	 *            tipo dos ítens da coleção
	 * @param colecao
	 *            coleção raw a ser checada
	 * @param classe
	 *            classe dos itens da coleção
	 * @return a coleção checada
	 */
	public static <T> Collection<T> checkedCollection(Collection colecao,
			Class<T> classe) {
		return Collections.checkedCollection(colecao, classe);
	}
}
